Hive的安装部署(二) 1.1 hiveserver2服务部署 Hive的hiveserver2服务的作用是提供jdbc/odbc接口,为用户提供远程访问Hive数据的功能,例如用户期望在个人电脑中访问远程服务中的Hive数据,就需要用到Hiveserver2。 在远程访问Hive数据时,客户端并未直接访问Hadoop集群,而是由Hivesever2代理访问。由于Hadoop集群中的数据具备访问权限控制,所以此时需考虑一个问题:那就是访问Hadoop集群的用户身份是谁?是Hiveserver2的启动用户?还是客户端的登录用户? 1.1.1 hiveserver2部署 (1)Hadoop端配置 hivesever2的模拟用户功能,依赖于Hadoop提供的proxy user(代理用户功能),只有Hadoop中的代理用户才能模拟其他用户的身份访问Hadoop集群。因此,需要将hiveserver2的启动用户设置为Hadoop的代理用户,配置方式如下: 修改配置文件core-site.xml,然后记得分发三台机器,重启集群。 [hadoop@hadoop1 ~]$ cd /home/hadoop/app/hadoop/etc/hadoop [hadoop@hadoop1 hadoop]$ vi core-site.xml 增加如下配置: hadoop.proxyuser.hadoop.hosts * hadoop.proxyuser.hadoop.groups * hadoop.proxyuser.hadoop.users * (2)Hive端配置 在hive-site.xml文件中添加如下配置信息 [hadoop@hadoop102 conf]$ vim hive-site.xml hive.server1.thrift.bind.host hadoop1 hive.server1.thrift.port 10000 1.2使用Datagrip图形化客户端进行远程访问hive 1.1.1下载DataGrip 访问官方网址:https://www.jetbrains.com/datagrip/,效果如下图1-1所示: 图1-1 官方网址 如图1-2所示,点击右上角的Download按钮进入下载界面,可以看到DataGrip支持Windows、macOS、Linux三个系统,有30天的免费试用期,Windows版的PhpStorm包含.exe、.zip、.exe (ARM64)三种版本。 .exe:标准的可执行文件格式,适用 x86 架构的计算机和服务器。Intel和AMD的CPU下载这个版本。 .zip:绿色版,直接解压就能使用。 .exe (ARM64):专为 ARM64 架构设计的可执行文件格式,适用于基于 ARM 架构的设备。 图1-2 下载datagrip 1.1.2安装datagrip 双击下载的datagrip-2024.3.4.exe,进入DataGrip安装界面,点击下一步,效果如图1-3所示: 图1-3 安装欢迎界面 进入选择安装位置界面,默认安装在C:\Program Files\JetBrains\DataGrip 2024.3.3这个目录,可以点击右侧的浏览重新选择安装的目录,然后点击下一步,效果如图1-4所示: 图1-4 选择安装位置 进入安装选项界面,勾选创建桌面快捷方式,点击下一步,效果图1-5所示: 图1-5 勾选桌面快捷方式 进入选择开始菜单目录界面,点击下一步,效果如图1-6所示: 图1-6 选择开始菜单目录 进入安装中界面,等待DataGrip安装,效果如图图1-7所示: 图1-7 安装中界面 DataGrip安装完成后,进入DataGrip 安装程序结束界面,点击完成,效果图1-8所示: 图1-8完成安装 到此就完成了DataGrip的安装。 1.3.3配置DataGrip连接 1)启动hiveserver2 提示:必须先启动hadoop集群 [hadoop@hadoop1 hive]$ bin/hive --service hiveserver2 或者直接使用[hadoop@hadoop1 bin]$ hiveserver2 2)创建连接 如图1-9所示,新建一个hive的数据源。 图1-9 创建连接 3)配置连接属性 如图1-10所示,所有属性配置和Hive的客户端配置一致即可。初次使用,配置过程会提示缺少JDBC驱动,按照提示下载即可。 图1-10 配置连接属性 4)界面介绍 如图1-11所示,为datagrip的操作界面。 图1-11 datagrip操作界面 5)测试sql执行 如图1-12所示,输入sql代码,然后执行。 图1-12测试sql执行 注意:hive-3.1.2启动的时候,默认申请的JVM堆内存大小为256M,JVM堆内存申请太小,导致执行复杂的sql时经常会报错(如下图所示):java.lang.OutOfMemoryError: GC overhead limit exceeded,然后HiveServer2服务就异常了,因此最好调整一下HADOOP_HEAPSIZE这个参数。 解决方案: 进入hive下的conf目录,先把“hive-env.sh.template”拷贝一下,或者“mv”重命名 [hanxiao@hadoop102 conf]$ cp hive-env.sh.template hive-env.sh 然后vim命令修改“hive-env.sh” [hanxiao@hadoop102 conf]$ vim hive-env.sh 去掉第40行的“#”号(就可以把HADOOP_HEAPSIZE改为1024) export HADOOP_HEAPSIZE=1024 II